#include <iostream>
#include <string>
#include <set>
using namespace std;

// 简化版ExportTask类（来自项目实际代码）
class ExportTask {
public:
    // 返回导出字段集合的常量引用
    const set<string>& getExportField() const { 
        cout << "[getExportField] 返回内部集合引用" << endl;
        return setExportField_; 
    }
    
    // 添加字段的方法
    void addField(const string& field) {
        setExportField_.insert(field);
    }
    
private:
    set<string> setExportField_;
};

int main() {
    ExportTask task;
    
    // 添加字段（实际项目中会加载配置）
    task.addField("name");
    task.addField("id");
    task.addField("content");
    
    cout << "\n===== 验证auto的行为 =====" << endl;
    auto fieldSet = task.getExportField();
    cout << "使用auto后添加新字段" << endl;
    fieldSet.insert("email"); // 实际上修改的是拷贝
    
    cout << "\n===== 原始集合内容 =====" << endl;
    for (const auto& field : task.getExportField()) {
        cout << field << " ";
    }
    cout << endl;
    
    cout << "\n===== 拷贝集合内容 =====" << endl;
    for (const auto& field : fieldSet) {
        cout << field << " ";
    }
    cout << endl << endl;
    return 0;
}
